www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Services/admin/libs/model/XerCMS_model_templet.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com
 */

!defined('XERCMS') && exit('Access Denied');

class Templet
{
	static $html;
	static $table;
	static $upload = null;
	static $editor = false;
	static $model = null;
	
	static function header() {
		self::$html  = '<!DOCTYPE html><html><head><meta charset="utf-8"><link rel="stylesheet" href="{xercms$G[urlpath]}Assets/styles/model.css"/>'."\r\n";
		self::$html .= '<link rel="stylesheet" href="{xercms$G[urlpath]}Assets/uekit/theme/default.css"/>'."\r\n";
		self::$html .= '<script src="{xercms$G[urlpath]}Assets/uekit/uekit-1.0.js" charset="utf-8"></script>'."\r\n";
		self::$html .= '<script src="{xercms$G[urlpath]}Assets/Js/XerCMS.js" charset="utf-8"></script>'."\r\n";
		self::$html .= '<script src="{xercms$G[urlpath]}Assets/Js/Model.js" charset="utf-8"></script></head><body>'."\r\n"; 
		self::$html .= '<div class="XerCMS-FORM"><form action="{xercms$submitUrl}" method="post" id="XerCMS_FORM">';
	 
		self::$html .= self::container('标题','<input type="text" name="base[title]" _required="1" value="{xercms$data[title]}" size="95" />','',1);
		self::$html .= self::container('归类','<select name="base[column]" style="height:28px;">{xercms:array name="mc"  index="key" data="val"}<option value="{xercms$key}" {XERCMS:if $key == $data[column]}selected{end:if}>{xercms$val[name]}</option>{end:array}</select>	','',1);
		self::$html .= self::container('属性','{xercms:extends file="flag" method="sVar" index="key" data="val"}&nbsp;<input type="radio" class="model-radio" name="base[flag]" {XERCMS:if $key == $data[flag]}checked="true"{end:if} value="{xercms$key}">&nbsp;{xercms$val[name]}&nbsp;&nbsp;{end:extends}','',0);
		self::upload();
		self::$html .= self::container('主图','<input type="text" id="base[image]" _required="0" class="model-upload-text" name="base[image]" value="{XERCMS$data[image]}"/><div id="base[image][upload]" class="model-upload"><embed type="application/x-shockwave-flash" wmode="transparent" height="36px" allowScriptAccess="always" quality="high" FlashVars="handler=image" name="uploader[image]" id="uploader[image]" src="{XERCMS$G[urlpath]}Assets/flash/upload.swf"></embed></div><script>upload["image"] = function(e) {switch(e){case \'select\':XerCMS.embed("uploader[image]").StartUpload(arguments[1],"{XERCMS$G[urlpath]}index.php?m=member&a=upfiles&id=2&format=json");break;case \'return\':var i = arguments[1];var path = arguments[2].upload.path;$("#base[image]").val(path);break;}};</script>','',0);
	    if(isset(self::$model['category']) && self::$model['category'] == 1) {
			self::$html .= self::container('价格','<input type="text" name="shop[price]" _required="1" value="{xercms$data[price]}" size="95" />','',1);
			self::$html .= self::container('数量','<input type="text" name="shop[number]" _required="1" value="{xercms$data[number]}" size="95" />','',1);		
		}
	}
  
	static function footer() {
		self::$html .= '<div class="XerCMS-Row"><input type="button" class="XerCMS-Submit" onclick="check();" id="XerCMS-Submit" value=" 保存 " /></div></form></div>';
		self::$html .= '<script></script></body></html>';	 
	}
  
	static function editor() {
		if(!self::$editor){
			self::$editor = true;
			self::$html .= '<script type="text/javascript" charset="utf-8" src="{xercms$G[urlpath]}Assets/editor/ueditor.config.js"></script>'."\r\n";
			self::$html .= '<script type="text/javascript" charset="utf-8" src="{xercms$G[urlpath]}Assets/editor/ueditor.all.min.js"> </script>'."\r\n"; 	  
		}  
	}
  
	static function upload() {
		if(self::$upload == null){ self::$upload = true;
			self::$html .= '<script type="text/javascript">var upload = new Array();</script>'."\r\n";	  
		} 
	} 
  
	static function handle($struct) {
		foreach($struct as $k=>$field) {
			$box = '';
			switch($field['type']) {
				case 'select':
					$box .= '<select  name="model['.$field['name'].']">';
					$field['data'] = explode("\n",$field['data']);
					foreach($field['data'] as $option) {
						$option = self::filter($option);
		     			$box .= '<option {xercms:if $data['.$field['name'].'] == \''.$option.'\'}selected="true"{end:if} value="'.$option.'">'.$option.'</option>';
		  			}  
          			$box .= '</select>';
					$box .= '<script>Model.select("'.$field['name'].'","{xercms$data['.$field['name'].']}");</script>';
		 			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
				break;
	    			case 'textarea':
            			$box .= '<textarea  _type="'.$field['type'].'" _required="'.$field['required'].'" name="model['.$field['name'].']">{xercms$data['.$field['name'].']}</textarea>';		
		  			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
	    			break;
				case 'checkbox':
		  			$field['data'] = explode("\n",$field['data']);$box = '<input type="hidden" id="model['.$field['name'].']" name="model['.$field['name'].']"  value="{xercms$data['.$field['name'].']}">';
          			foreach($field['data'] as $option) {
						$option = self::filter($option);
		    				$box .= '<div class="model-checkbox"><input class="model-checkbox-inner" name="model['.$field['name'].'][]" {XERCMS:if in_array(\''.$option.'\',$data[\''.$field['name'].'\'])}checked="true"{end:if} type="checkbox" value="'.$option.'"><span>&nbsp;'.$option.'&nbsp;&nbsp;</span></div>';
		  			}
		  			//$box .= '<script>Model.checkbox("'.$field['name'].'","{xercms$data['.$field['name'].']}");</script>';
		  			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
				break;
				case 'radio':
		  			$field['data'] = explode("\n",$field['data']);
          			foreach($field['data'] as $option) {
						$option = self::filter($option);
		    				$box .= '<input name="model['.$field['name'].']" type="radio" class="model-radio" {xercms:if $data['.$field['name'].'] == \''.$option.'\'}checked="true"{end:if} value="'.$option.'"><span>&nbsp;'.$option.'&nbsp;&nbsp;</span>';
		  			}
		  			//$box .= '<script>Model.radio("'.$field['name'].'","{xercms$data['.$field['name'].']}");</script>';
		  			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
				break;
				case 'upload':
					self::upload();
          			$box  = '<input type="text" id="model['.$field['name'].']" _required="'.$field['required'].'" class="model-upload-text" name="model['.$field['name'].']" value="{xercms$data['.$field['name'].']}"/>'."\r\n".'
					<div id="model['.$field['name'].'][upload]" class="model-upload">'."\r\n".'<embed type="application/x-shockwave-flash" wmode="transparent" height="36px" allowScriptAccess="always" quality="high" FlashVars="handler='.$field['name'].'" name="uploader['.$field['name'].']" id="uploader['.$field['name'].']" src="{xercms$G[urlpath]}Assets/flash/upload.swf"></embed>'."\r\n".'</div>';
          			$box .= '<script>upload["'.$field['name'].'"] = function(e) {switch(e){case \'select\':XerCMS.embed("uploader['.$field['name'].']").StartUpload(arguments[1],"{xercms$G[urlpath]}?m=member&a=upfiles&format=json&id='.(int)$field['data'].'");break;case \'return\':var i = arguments[1];var path = arguments[2].upload.path;$("#model['.$field['name'].']").val(path);break;}};</script>';
		  			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
				break;
				case 'html':
					self::editor();
          			$box  = '<script id="model['.$field['name'].']" _required="'.$field['required'].'" type="text/plain" name="model['.$field['name'].']" style="width:600;height:300px;">{xercms$data['.$field['name'].']}</script><script>UE.getEditor(\'model['.$field['name'].']\');</script>';
		  			$box .= '<script>Model.editor("model['.$field['name'].']","'.$field['upload'].'")</script>';
		  			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
				break;
				default:
          			$box = '<input type="text"  _required="'.$field['required'].'" _type="'.$field['type'].'" name="model['.$field['name'].']" value="{xercms$data['.$field['name'].']}"/>';
		  			self::$html .= self::container($field['comments'],$box,$field['tips'],$field['required']);
				break;
			}
		}	
	} 
  
	static function container($comments,$box,$tips,$required = 0) {
		return '<div class="XerCMS-Row"><label class="required_'.$required.'">'.$comments.'&nbsp;:&nbsp;</label><div class="model-box">'.$box.'</div><div class="model-tips">'.$tips.'</div></div>'."\r\n";
	}

	static function update($id,$data){
		$model = DB::result('SELECT * FROM xercms_model WHERE id = '.$id);
		DB::update('xercms_model',array('template'=>$data),array('id'=>$id));
		dfile('XerCMS/Data/archives/model/template/'.$model['table'].'.htm',stripcslashes($data));
	}

	static function get($id) {
		$model = DB::result('SELECT * FROM xercms_model WHERE `id` = \''.$id.'\'');//print_r($model);
		return $model['template'];
	}
   
     static function Create($id) {     
		self::$model = DB::result('SELECT * FROM xercms_model WHERE id = '.$id);
		self::$table = self::$model['table'];self::header();
		if(!empty(self::$model['struct'])) {
			self::$model['struct'] = json_decode(self::$model['struct'],true);//dfile('debug.txt',var_export($model['struct'],true));
			self::handle(self::$model['struct']);
		}
		self::footer();
		if(!empty(self::$html)) {
	     	DB::update('xercms_model',array('template'=>addslashes(self::$html)),array('id'=>$id));
		}
		dfile('XerCMS/Data/archives/model/template/'.self::$model['table'].'.htm',self::$html);
	}
  
	static function filter($str) {
		return strtr(trim($str),array('\''=>'','"'=>'','\\'=>''));
	}
}
?>